package sk.stuba.fiit.clientApp.service;

import java.io.File;
import java.util.List;

import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.tsp.TimeStampResponse;

import sk.stuba.fiit.clientApp.cvo.ArchiveCVO;
import sk.stuba.fiit.clientApp.cvo.ArchiveResultCVO;
import sk.stuba.fiit.clientApp.cvo.BasicPanelDataCVO;
import sk.stuba.fiit.clientApp.cvo.CertificateCVO;
import sk.stuba.fiit.clientApp.cvo.CrlCVO;
import sk.stuba.fiit.clientApp.cvo.UserDetailCVO;
import sk.stuba.fiit.clientApp.cvo.VerifyPanelDataCVO;
import sk.stuba.fiit.ltasys.ws.schema.beans.SignatureRequest;



public interface SignatureService{

	public boolean verifySignatureComplex(VerifyPanelDataCVO data) throws Exception;

	public UserDetailCVO setUserAccount(String username, String userPassword,
			String userId) throws Exception;

	public List<File> findFileBySignature(String path) throws Exception;

	public TimeStampResponse getTimeStampToken(byte[] data,
			ASN1ObjectIdentifier algorithmId, String algorithm) throws Exception;

	public SignatureRequest generateSignature(BasicPanelDataCVO dataCVO) throws Exception;
	
	public CrlCVO GetAndSaveActualCRL() throws Exception;

	public CertificateCVO getCertificateBySerialNum(String serialNum) throws Exception;
	
	public ArchiveResultCVO archive(ArchiveCVO archiveCvo) throws Exception;

	public ArchiveResultCVO deleteArchivePackage(ArchiveCVO archiveCvo) throws Exception;

	public ArchiveResultCVO obtainArchivePackage(ArchiveCVO archiveCvo) throws Exception;
   
}
